
import dayjs from 'dayjs';
/**
 * 处理日期 （日期 + 时刻 + :00） 拼接，如果时刻为 24:00 即是最后一个值 那么（日期+1 + 00:00 + :00）
 * @param date 日期
 * @param time 时刻
 * @param  index 第几个时刻
 * @param  arrLength 数据长度
*/
export const dulDate = (date:string,time:string,index:number,arrLength:number):string=>{
  if(index === arrLength - 1){
     return dayjs(date).add(1, 'day').format('YYYY-MM-DD') + ' ' +'00:00:00'
  }else{
     return date + ' ' + time + ":00"
  } 
 }


 /**处理字符串转数字，为null的话不转换 */
 export const stringToNum = (val:string)=>{
    if(val==="0"||val){
      return Number(val)
    }else{
      return val
    }
 }


 /**
 * 根据日期范围，返回连续的日期数组
 * @example
 * createSerialDates(['2020-01-01', '2020-01-02'], 'YYYY-MM-DD HH:mm:ss', 24) => ["2020-01-01 00:00:00", "2020-01-01 01:00:00", "2020-01-01 02:00:00"...]
 * createSerialDates(['2020-01-01', '2020-01-02'], 'YYYY-MM-DD HH:mm:ss', 96) => ["2020-01-01 00:00:00", "2020-01-01 00:15:00", "2020-01-01 00:30:00",...]
 * createSerialDates(['2020-01-01', '2020-01-02'], 'YYYY-MM-DD', 1) => ["2020-01-01", "2020-01-02"]
 * @param daterange 日期范围
 * @param onedayDataNums 一天数据量，比如一天1个点、24个点、96个点数据
 * @param valueFormat 返回数据的日期格式 （默认：YYYY-MM-DD  ）| YYYY-MM-DD HH-mm:ss ...
 * @returns ['YYYY-MM-DD','YYYY-MM-DD'....]
 */
export const createSerialDates = (daterange:string[], onedayDataNums:number = 24, valueFormat:string = 'YYYY-MM-DD'):string[] => {
   const [startDate, endDate] = daterange
   const diffDays = dayjs(endDate).diff(startDate, 'day')
   const start = dayjs(startDate).startOf('day').format('YYYY-MM-DD HH:mm:ss')
   const interval = 24 * 60 / onedayDataNums // 数据时间间隔的单位为分钟
   return Array.from({ length: (diffDays + 1) * onedayDataNums }, (v, i) => {
     return dayjs(start).add(i * interval, 'minute').format(valueFormat)
   })
 }